/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.ucase.punishinform.service;

import com.icinfo.cloud.provider.punish.ucase.punishinform.dto.*;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCollectiveDiscusSproposalVo;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCollectiveDiscussSignStatusInfoVo;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCollectiveDiscussUserListVo;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCollectiveDiscussVo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 描述:  case_collective_discuss 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年02月17日
 */
public interface ICaseCollectiveDiscussService extends BaseService {
    /**
     * 根据案件id获取集体议案信息
     * @author liyafeng
     * @date 2022/2/26
      * @param
     * @return {@link CaseCollectiveDiscussVo}
     */
    CaseCollectiveDiscussVo getCaseCollectiveDiscussBaseInfo(InformHtmlRequest request);
    /**
     * 保存集体议案信息
     * @author liyafeng
     * @date 2022/2/26
      * @param caseCollectiveDiscussDto
     * @return {@link int}
     */
    Map<String, Object> saveCaseCollectiveDiscuss(CaseCollectiveDiscussDto caseCollectiveDiscussDto);
    /**
     * 集体议案各类人员选择列表
     * @param: [caseId]
     * @return: CaseCollectiveDiscussUserListVo
     * @Author: wuzhihui
     * @Date: 2022/12/05
     */
    CaseCollectiveDiscussUserListVo collectiveDiscussUserSelect(String caseId);
    /**
     *
     * @param: [caseCollectiveDiscussUserListVo]
     * @return: CaseCollectiveDiscussUserListVo
     * @Author: wuzhihui
     * @Date: 2022/12/06
     */
    Map<String, Object> saveCaseCollectiveDiscussTask(CaseCollectiveDiscussUserListDto caseCollectiveDiscussUserListVo);
    /**
     * 发表集体议案建议
     * @param: [dto]
     * @return: boolean
     * @Author: wuzhihui
     * @Date: 2022/12/07
     */
    boolean saveProposal(ProposalSaveDto dto);
    /**
     * 集体议案分页列表
     * @param: [pageRequest]
     * @return: List<CaseCollectiveDiscussVo>
     * @Author: wuzhihui
     * @Date: 2022/12/07
     */
    List<CaseCollectiveDiscussVo> getCaseCollectiveDiscussList(CaseCollectiveDiscussPageRequest pageRequest);
    /**
     * 集体议案人员建议列表
     * @param: [pageRequest]
     * @return: List<CaseCollectiveDiscussPersonVo>
     * @Author: wuzhihui
     * @Date: 2022/12/07
     */
    List<CaseCollectiveDiscusSproposalVo> getPersonProposalList(CaseCollectiveDiscussPersonRequest CaseCollectiveDiscussPersonRequest);
    /**
     * 集体议案签字确认
     * @param: [caseId]
     * @return: boolean
     * @Author: wuzhihui
     * @Date: 2022/12/11
     */
    Map<String, Object> signConfirm(CaseCollectiveDiscussSignDto signDto);
    /**
     * 获取集体议案是否需要签字
     * @param:
     * @return: CaseCollectiveDiscussSignStatusInfoVo
     * @Author: wuzhihui
     * @Date: 2022/12/11
     */
    CaseCollectiveDiscussSignStatusInfoVo getSignStatusInfo(CaseCollectiveDiscussSignDto signDto);
    /**
     * 删除线上集体议案
     * @param: [dto]
     * @return: com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCollectiveDiscussSignStatusInfoVo
     * @Author: wuzhihui
     * @Date: 2022/12/11
     */
    int deleteDiscuss(CaseCollectiveDiscussDelDto dto);
}
